The present invention is directed to a method and apparatus for providing a host computer with information relating to the mapping of logical volumes within an intelligent storage system.
Many computer systems include one or more host computers and one or more storage systems that store data used by the host computers. An example of such a system is shown in FIG. 1, and includes a host computer 1 and a storage system 3. The storage system typically includes a plurality of storage devices on which data is stored. In the exemplary system shown in FIG. 1, the storage system includes a plurality of disk drives 5a-5b, and a plurality of disk controllers 7a-7b that respectively control access to the disk drives 5a and 5b. The storage system 3 further includes a plurality of storage bus directors 9 that control communication with the host computer 1 over communication buses 17. The storage system 3 further includes a cache 11 to provide improved storage system performance. In particular, when the host computer 1 executes a read from the storage system 3, the storage system 3 may service the read from the cache 11 (when the data is stored in the cache), rather than from one of the disk drives 5a-5b, to execute the read more efficiently. Similarly, when the host computer 1 executes a write to the storage system 3, the corresponding storage bus director 9 can execute the write to the cache 11. Thereafter, the write can be destaged asynchronously, in a manner transparent to the host computer 1, to the appropriate one of the disk drives 5a-5b. Finally, the storage system 3 includes an internal bus 13 over which the storage bus directors 9, disk controllers 7a-7b and the cache 11 communicate.
The host computer 1 includes a processor 16 and one or more host bus adapters 15 that each controls communication between the processor 16 and the storage system 3 via a corresponding one of the communication buses 17. It should be appreciated that rather than a single processor 16, the host computer 1 can include multiple processors. Each bus 17 can be any of a number of different types of communication links, with the host bus adapter 15 and the storage bus directors 9 being adapted to communicate using an appropriate protocol for the communication bus 17 coupled therebetween. For example, each of the communication buses 17 can be implemented as a SCSI bus, with the directors 9 and adapters 15 each including a SCSI driver. Alternatively, communication between the host computer 1 and the storage system 3 can be performed over a Fibre Channel fabric that implements the communication bus 17.
As shown in the exemplary system of FIG. 1, some computer systems employ multiple paths A-D for communicating between the host computer 1 and the storage system 3 (e.g., each path includes a host bus adapter 15, a bus 17 and a storage bus director 9 in FIG. 1). In many such systems, each of the host bus adapters 15 has the ability to access each of the disk drives 5a-5b, through the appropriate storage bus director 9 and disk controller 7a-b. 
The storage system 3 disclosed in FIG. 1 is an intelligent storage system that controls the location wherein data accessible via the host computer 1 is stored. Thus, the exact physical location (i.e., which one of the disk drives 5a-5b and the location on the disk drive) wherein any block of data is actually stored is transparent to the host computer 1. In this respect, a computer system such as that shown in FIG. 1 typically includes a plurality of layers as shown in FIG. 2. The layers include an application layer 21 that resides on the host computer 1 and references data objects (e.g., files) used by the application. In addition, the host computer 1 also includes a file system and/or logical volume manager layer 23 that maps each data object specified by the application layer 21 to a particular logical volume, that the host computer 1 perceives to correspond to an actual physical storage device, wherein the data object is stored. Thus, if the computer system included a storage system without any intelligence, the logical volumes specified by the file system/LVM layer 23 would designate a particular physical device and a particular storage location thereon wherein the data object would be stored. Finally, the computer system further includes a storage system mapping layer 25 that resides on the storage system, and that maps from the logical volume provided from layer 23 to an actual physical location, including at least one of the disk drives 5a-5b and the physical location thereon, wherein the logical volume is stored. The mapping between a logical volume and a physical disk drive may not be 1:1, as a single logical volume can be split across multiple physical disk drives 5a-5b, or alternatively, multiple logical volumes can be stored on the same physical disk drive.
It is an object of the present invention to provide an improved method and apparatus for managing the placement of data on a storage system to achieve improved system performance.
One illustrative embodiment of the invention is directed to a method in a computer system including a host computer and an intelligent storage system that is coupled to the host computer and stores data accessed by the host computer, the computer system including a plurality of logical volumes of data that are visible to the host computer and the storage system and that are perceived by the host computer as comprising a plurality of raw storage devices, the storage system including a plurality of physical storage devices and at least one mapping layer that maps the plurality of logical volumes to the plurality of physical storage devices so that the data in each of the plurality of logical volumes is stored on at least one of the plurality of physical storage devices. The method comprises a step of providing the host computer with information identifying, for at least one of the plurality of logical volumes, which ones of the plurality of physical storage devices store data included in the at least one of the plurality of logical volumes.
Another illustrative embodiment of the invention is directed to a computer readable medium encoded with a program for execution on a computer system including a host computer and an intelligent storage system that is coupled to the host computer and stores data accessed by the host computer, the computer system further including a plurality of logical volumes of data that are visible to the host computer and the intelligent storage system and that are perceived by the host computer as comprising a plurality of raw storage devices, the storage system including a plurality of physical storage devices and at least one mapping layer that maps the plurality of logical volumes to the plurality of physical storage devices so that the data in each of the plurality of logical volumes is stored on at least one of the plurality of physical storage devices. The program, when executed on the computer system, performing a method comprising a step of providing the host computer with information identifying, for at least one of the plurality of logical volumes, which ones of the plurality of physical storage devices store data included in the at least one of the plurality of logical volumes.
A further illustrative embodiment of the invention is directed to a computer readable medium encoded with a program for execution on a computer system including a host computer and an intelligent storage system that is coupled to the host computer and stores data accessed by the host computer, the computer system further including a plurality of logical volumes of data that are visible to the host computer and the intelligent storage system and that are perceived by the host computer as comprising a plurality of raw storage devices, the storage system including a plurality of physical storage devices and at least one mapping layer that maps the plurality of logical volumes to the plurality of physical storage devices so that the data in each of the plurality of logical volumes is stored on at least one of the plurality of physical storage devices. The program, when executed on the host computer, performing a method comprising a step of receiving information from the storage system identifying, for at least one of the plurality of logical volumes, which ones of the plurality of physical storage devices store data included in the at least one of the plurality of logical volumes.
Another illustrative embodiment of the invention is directed to an intelligent storage system for use in a computer system including a host computer and the intelligent storage system to store data accessed by the host computer, the computer system including a plurality of logical volumes of data that are visible to the host computer and the storage system and that are perceived by the host computer as comprising a plurality of raw storage devices. The storage system comprises a plurality of physical storage devices; at least one mapping layer that maps the plurality of logical volumes to the plurality of physical storage devices so that the data in each of the plurality of logical volumes is stored on at least one of the plurality of physical storage devices; and at least one controller to provide the host computer with information identifying, for at least one of the plurality of logical volumes, which ones of the plurality of physical storage devices store data included in the at least one of the plurality of logical volumes.
A further illustrative embodiment of the invention is directed to a host computer for use in a computer system including the host computer and an intelligent storage system that is coupled to the host computer and stores data accessed by the host computer, the computer system including a plurality of logical volumes of data that are visible to the host computer and the storage system and that are perceived by the host computer as comprising a plurality of raw storage devices, the storage system including plurality of storage devices and at least one mapping layer that maps the plurality of logical volumes to the plurality of physical storage devices so that the data in each of the plurality of logical volumes is stored on at least one of the plurality of physical storage devices. The host computer comprises at least one controller to receive information from the storage system identifying, for at least one of the plurality of logical volumes, which ones of the plurality of physical storage devices store data included in the at least one of the plurality of logical volumes.